package cn.lg.soar.system.biz.config;

/**
 * 缓存key管理
 * @author luguoxiang
 * @date 2022/3/31
 * 开源项目：https://gitee.com/lgx1992/lg-soar 求star！请给我star！请帮我点个star！
 */
public interface SystemCacheKey {

    /**
     * 根据id获取用户
     */
    String USER_BY_ID = "UI";

    /**
     * 获取用户组织id
     */
    String ORG_ID_BY_USER = "UO";

    /**
     * 获取用户角色id
     */
    String ROLE_ID_BY_USER = "UR";

    /**
     * 获取用户所有角色
     * 删除权限触发点：
     * 1.用户分配职位
     * 2.用户分配组织
     * 3.用户分配角色
     * 4.组织分配角色
     * 5.职位分配角色
     */
    String ROLE_ID_BY_USER_ALL = "URA";

    /**
     * 获取用户所有组织机构
     * 删除权限触发点：
     * 1.用户分配职位
     * 2.用户分配组织
     * 3.职位更新
     * 4.组织机构更新
     */
    String ORG_ID_BY_USER_ALL = "UOA";

    /**
     * 用户租户
     */
    String TENANT_BY_USER = "UT";

    /**
     * 根据id获取组织机构
     */
    String ORG_BY_ID = "OI";

    /**
     * 获取组织角色id
     */
    String ROLE_ID_BY_ORG = "OR";

    /**
     * 根据id获取职位
     */
    String POST_BY_ID = "PI";


    /**
     * 获取职位角色id
     */
    String ROLE_ID_BY_POST = "PR";

    /**
     * 根据id获取角色
     */
    String ROLE_BY_ID = "RI";

    /**
     * 获取角色菜单id
     */
    String MENU_ID_BY_ROLE = "RM";

    /**
     * 获取角色菜单
     */
    // String MENU_BY_ROLE = "N"; TODO 可用的

    /**
     * 获取角色所有权限
     * 删除权限触发点：
     * 1.角色分配权限时
     * 2.角色分配菜单时
     * 3.菜单分配权限时
     */
    String PERMIT_CODE_BY_ROLE = "RP";

    /**
     * 获取菜单权限
     */
    String PERMIT_ID_BY_MENU = "MP";

    /**
     * 资源id缓存
     */
    String RESOURCE_ID = "ZY";

    /**
     * 资源规则缓存
     * 删除触发点：
     * 1.DataScope新增、更新、删除
     * 2.DataRule新增、更新、删除
     * 3.DataRuleItem新增、更新、删除
     */
    String RESOURCE_RULE_MAP = "GZ";

    /**
     * 根据字典code获取数据字典项
     */
    String DICT_BY_CODE = "DC";

    /**
     * 字典code缓存
     */
    String DICT_TYPE = "DT";

    /**
     * 单点登录客户端缓存key
     */
    String OSS_CLIENT_BY_ID = "ossClient";

    /**
     * 树形数据
     */
    String TREE = "tree";

    String BIZ_FILE_TYPE = "bizFileType";

    String FILE_STORAGE = "fileStorage";

    String LOG_CONFIG = "logCfg";

    String TEMPLATE_BY_ID = "template:i";

    String TEMPLATE_BY_CODE = "template:c";

}
